package com.irssproject.app.service.lectorRSS.iface;

import java.util.List;

import com.irssproject.app.bean.lectorRSS.Etiqueta;
import com.irssproject.app.bean.lectorRSS.Feed;
import com.irssproject.app.bean.lectorRSS.Item;
import com.irssproject.app.bean.lectorRSS.Lectura;
import com.irssproject.app.bean.lectorRSS.Subscripcio;
import com.irssproject.app.bean.main.Usuari;
import com.sun.syndication.feed.synd.SyndFeed;

public interface SubscripcioService {

	public void insertSubscripcio(Usuari usuari, Feed feed, Etiqueta etiqueta, List<Item> items) throws Exception;
	public void eliminarSubscripcio(Long idSubscripcio);
	
	public List<Subscripcio> getListSubscripcions(Usuari usuari);
	public List<Etiqueta> getListEtiquetes(Usuari usuari);
	
	public void marcarLecturaLlegida(Long idLectura);
	public List<Etiqueta> getListEtiquetes();
	
	public List<Lectura> mostrarLecturesNoLlegides(Long idSubscripcio);
	public List<Lectura> mostrarTotesLectures(Long idSubscripcio);
	public List<Lectura> mostrarLecturesVotades(Usuari usuari);
	public List<Subscripcio> getListSubscripcionsPerEtiqueta(Usuari usuari, Etiqueta etiqueta);
	public void refrescarSubscripcio(Long idSubscripcio);
	
	public Feed readRSSFeed(Feed feed) throws Exception;
	public Integer getNumItemsSubscripcio(Subscripcio subscripcio);

	public List<Item> getFeedEntries(Feed feed) throws Exception;
	public boolean usuariTeFeedSubscrit(Usuari usuari, Feed feed);
	public Subscripcio getSubscripcioById(Long id);
	public Lectura getLecturaById(Long idLectura);
	public boolean marcarLlegidaONoLlegida(Long idLectura);
	public boolean valorarLectura(Long idLectura);
	public void marcarTotesLecturesLlegides(Long idSubscripcio);
	public void definirRellevanciaDeLectura(Lectura lectura);
	
}
